export {};

/*
 泛型 - 多个变量之间的约束

*/
// 需求：创建一个函数来获取对象中属性的值
// 1. 保证 T 是任何具有对象属性的类型，使用 T extends object
// 2. 保证 K 是 T 里面的一个 key 值，使用 K extends keyof T

// keyof   =====>   返回对象所有的 key
const getProp = <T extends object, K extends keyof T>(obj: T, key: K) => {
  return obj[key];
};
const person = {
  name: "zs",
  age: 20,
};

getProp(person, "name"); // zs
// getProp(person, "gender"); // 报错
